home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 May / macformat-024.iso / Shareware City / Developers / BoxMaker++ / µZak ƒ / queue.cp next >
Encoding:
Text File  |  1995-01-20  |  709 b   |  50 lines  |  [TEXT/KAHL]

  1.  
  2. #include "queue.h"
  3.  
  4. template<class C> queue<C>::queue( unsigned int numItems) : size( numItems)
  5. {
  6.     theItems = new C[ size];
  7.     F = 0;
  8.     R = 0;
  9.     numInside = 0;
  10. }
  11.  
  12. template<class C> queue<C>::~queue()
  13. {
  14.     delete theItems;
  15. }
  16.  
  17. template<class C> void queue<C>::Add( C newItem)
  18. {
  19.     if( !isFull())
  20.     {
  21.         R += 1;
  22.         if( R == size)
  23.         {
  24.             R = 0;
  25.         }
  26.         theItems[ R] = newItem;
  27.         numInside += 1;
  28.     }
  29. }
  30.  
  31. template<class C> C queue<C>::Remove()
  32. {
  33.     //
  34.     // Note: this code _assumes_ that class C is a pointer type, or at least
  35.     // that zero is a valid value for a 'C' type instance.
  36.     //
  37.     C result = 0;
  38.     if( !isEmpty())
  39.     {    
  40.         F += 1;
  41.         if( F == size)
  42.         {
  43.             F = 0;
  44.         }
  45.         result = theItems[ F];
  46.         numInside -= 1;
  47.     }
  48.     return result;
  49. }
  50.